﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Citi.HeadCount.WebUI.Util
{
    public class ColumnMapping
    {
    }

    public class ColumnMappingGOC : ColumnMapping
    {
        public int GOCAttribute { get; set; }
        public int LongDescription { get; set; }
        public int Status { get; set; }
        public int Sid { get; set; }
        public int SIDDescription { get; set; }
        public int LocalCostCode { get; set; }
        public int UpdatedDate { get; set; }
        public int Manager { get; set; }
        public int FRSBu { get; set; }
        public int FRSBuCode { get; set; }
        public int FRSBuDescription { get; set; }
        public int FRSOu { get; set; }
        public int FRSOuCode { get; set; }
        public int FRSOuDescription { get; set; }
        public int Function { get; set; }
        public int FunctionCode { get; set; }
        public int FunctionDescription { get; set; }
        public int Level { get; set; }
        public int LevelCode { get; set; }
        public int LevelDescription { get; set; }
        public int Country { get; set; }
        public int ManagedSegment { get; set; }
        public int ManagedSegmentId { get; set; }
        public int ManagedSegmentCode { get; set; }
        public int ManagedSegmentDescription { get; set; }

        public ColumnMappingGOC()
        {
            GOCAttribute = 0;
            LongDescription = 1;
            Status = 2;
            UpdatedDate = 3;
            Sid = SIDDescription = 4;
            LocalCostCode = 5;
            Manager = 6;
            FRSBu = FRSBuCode = 7;
            FRSBuDescription = 8;
            FRSOu = FRSOuCode = 9;
            FRSOuDescription = 10;
            Function = FunctionCode = 11;
            FunctionDescription = 12;
            Level = LevelCode = 13;
            LevelDescription = 14;
            Country = 16;
            ManagedSegment = ManagedSegmentId = ManagedSegmentCode = 17;
            ManagedSegmentDescription = 18;
        }
    }

    public class ColumnMappingGOCCode : ColumnMapping
    {
        public int GOCAttribute { get; set; }
        public int ExpenseCode { get; set; }
        public int CorpCode { get; set; }        

        public ColumnMappingGOCCode()
        {
            GOCAttribute = 0;
            ExpenseCode = 1;
            CorpCode = 2;
        }
    }

    public class ColumnMappingManagedSegment : ColumnMapping
    {
        public int Code { get; set; }
        public int Description { get; set; }
        public int ParentCode { get; set; }
        public int TreeLevel { get; set; }
        public int UpdatedDate { get; set; }
        public int Status { get; set; }

        public ColumnMappingManagedSegment()
        {
            Code = 0;
            Description = 1;
            ParentCode = 3;
            TreeLevel = 4;
            UpdatedDate = 6;
            Status = 7;
        }
    }

    public class ColumnMappingFunction : ColumnMapping
    {
        public int Code { get; set; }
        public int Description { get; set; }
        public int ParentCode { get; set; }
        public int TreeLevel { get; set; }
        public int Status { get; set; }
        public int Definition { get; set; }

        public ColumnMappingFunction()
        {
            Code = 0;
            Description = 1;
            Definition = 2;
            ParentCode = 3;
            TreeLevel = 4;
            Status = 7;
        }
    }
}
